package com.tao.common.utils;

import com.alibaba.fastjson2.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;

@Slf4j
public class JsonUtil<T> {

    /**
     * 将对象转换成json字符串
     * @param object 需要转换的对象
     * @return 成功: json字符串<br/> 失败: null
     */
    public static String toJson(Object object) {
        try {
            // 如果为空就返回null
            return object == null ? null : JSON.toJSONString(object);
        }catch (Exception e) {
            log.error("object toJson error: {}", e);
            return null;
        }
    }

    /**
     * 将json字符串转换成对象
     * @param jsonString json 字符串
     * @param type 需要转换的对象
     * @return 返回对象
     */
    public static <T> T parseObject(String jsonString, Class<T> type) {
        if(!StringUtils.hasLength(jsonString) || type == null) {
            return null;
        }
        try {
            return JSON.parseObject(jsonString,type);

        }catch (Exception e) {
            log.error("parseObject error: {}", e);
            return null;
        }
    }
}
